#include "keyTest.h"
#include "ledTest.h"

// // PA0 K1

// 下拉电阻 默认状态0
// 还有就是GPIO的各个参数

void KeyInit(){
   gpio_init_type gpio_init_struct;

  /* enable the gpioa clock */
  crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);

  /* set default parameter */
  gpio_default_para_init(&gpio_init_struct);

  /* configure the gpio */
  gpio_init_struct.gpio_drive_strength = GPIO_DRIVE_STRENGTH_STRONGER;
  gpio_init_struct.gpio_mode = GPIO_MODE_INPUT; //GPIO作为输入
  gpio_init_struct.gpio_pins = GPIO_PINS_0;
  gpio_init_struct.gpio_pull = GPIO_PULL_DOWN; //下拉 高电平有效就下拉（默认状态低电平）
  gpio_init(GPIOA,&gpio_init_struct);


}

//一个按键，几种模式切换
//长按 按两次

// 连续按 000 都有效
// 不连续按 000 只有前面松开（1）接按下（0）有效

// 使用static 关键字 值会保存具有记忆功能 记录上一次调用的状态

// 这是连续按

int KeyScan(){
    //key ==0 默认
  static uint8_t flag =1;//之前没有按键按下 
//   int K1=1;
//   K1 =  gpio_input_data_bit_read(GPIOA, GPIO_PINS_10) ;
// 没问题 就是按键没有高


  if((flag==1)&&(gpio_input_data_bit_read(GPIOA, GPIO_PINS_0)==1))//之前没有按键按下且key1按下时 1
//    if((flag==1)&&K1)//之前没有按键按下且key1按下时
	{
        
		flag = 0;//按键key0，flag置0（即为有按键按下）
        delay_ms(10); 	//延时按键消抖
     
        if(gpio_input_data_bit_read(GPIOA, GPIO_PINS_0)==1){ //确定有按键按下
            return 1;
        }
		
	}
  else if(gpio_input_data_bit_read(GPIOA, GPIO_PINS_0)==0){
//   else if(gpio_input_data_bit_read(GPIOA, GPIO_PINS_9)==!SET){
      flag =1;

  }
	return 0;//无按键按下

}